package com.moyu.user.service;

import com.github.pagehelper.PageInfo;
import com.moyu.common.core.domain.R;
import com.moyu.user.domain.role.Role;
import com.moyu.user.domain.user.User;

import java.util.List;

/**
 * @Author 赵彦博
 * @Date 2024/11/19 11:02
 */
public interface IUserService {

    /**
     * 通过用户名查询单个用户
     *
     * @param username 用户名
     * @return 单个用户
     */
    User query(String username);

    /**
     *  登录
     * @param username 用户名
     * @param password 密码
     * @return
     */
    R<String> login(String username, String password);

    /**
     * 新增用户
     * @param user 用户信息
     * @return user
     */
    User createUser(User user);

    /**
     * 修改用户
     * @param user 用户信息
     * @return user
     */
    User update(User user);

    /**
     * 删除用户
     * @param id 用户id
     */
    boolean delete(Long id);

    /**
     * 获取用户的角色
     * @param username 用户名
     */
    List<Role> listRoleByUsername(String username);

    /**
     * 分页查询用户
     * @param pageNumber 页号
     * @param pageSize 页大小
     * @return 用户列表
     */
    PageInfo<User> list(int pageNumber, int pageSize);
}
